package com.yunxin.core.application.service;

import com.yunxin.core.application.command.product.*;

/**
 * @author zero°
 * @since 2023-05-25
 */
public interface ProductApplicationAdminService {

    /**
     * 新增产品推广信息
     * @param request request
     * @return  Long 产品id
     */
    Long addProductPromotionInfo(AddProductPromotionInfoCommand request);

    /**
     * 更新产品推广信息
     * @param request request
     * @return  boolean
     */
    boolean updateProductPromotionInfo(UpdateProductPromotionInfoCommand request);

    /**
     * 操作产品客户配置（新增/更新）
     * @param request request
     * @return  boolean
     */
    boolean operateProductPromotionCustomConfig(ProductCustomConfigOperateCommand request);

    /**
     * 操作产品投放配置（新增/更新）
     * @param request request
     * @return  boolean
     */
    boolean operateProductPromotionThrowInConfig(ProductThrowInConfigOperateCommand request);

    /**
     * 操作产品单价配置（新增/更新）
     * @param request request
     * @return  boolean
     */
    boolean operateProductPromotionUnitPriceConfig(ProductUnitPriceConfigOperateCommand request);

    /**
     * 更新产品状态
     * @param request request
     * @return  boolean
     */
    boolean updateProductStatus(UpdateProductStatusCommand request);

    /**
     * 新增产品预付款记录
     * @param command command
     * @return  boolean
     */
    boolean addProductAdvanceChargeRecord(AddProductAdvanceChargeRecordCommand command);

    /**
     * 编辑产品预付款记录
     * @param command command
     * @return  boolean
     */
    boolean updateProductAdvanceChargeRecord(UpdateProductAdvanceChargeRecordCommand command);

//    /**
//     * 更新产品禁止状态
//     * @param command
//     * @return
//     */
//    Boolean updateProductProhibitStatus(UpdateProductProhibitStatusCommand command);
}
